$namespcae: 'xm' !default;
$block-sel: "-" !default;
$elem-sel: "__" !default;
$mod-sel: "--" !default;

//xm-block
@mixin b($block) {
  $B: #{$namespcae + $block-sel + $block};

  .#{$B} {
    @content;
  }
}
// .xm-block__inner
@mixin e($el) {
  $selector: &; //父级类名
  @at-root{//跳出父级嵌套
    #{$selector+$elem-sel+$el}{
      @content
    }
  }
}

// .xm-block--inner
@mixin m($mod) {
  $selector: &; //父级类名
  @at-root{//跳出父级嵌套
    #{$selector+$mod-sel+$mod}{
      @content
    }
  }
}